import { createRouter, createWebHistory } from 'vue-router'
import progress from '@bassist/progress'
import routes from './routes'
import { APP_NAME } from '@/constants'

progress.configure({ showSpinner: false })
progress.setColor('var(--c-brand)')

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes,
  scrollBehavior: (to, from, savedPosition) => {
    return savedPosition ? savedPosition : { top: 0, left: 0 }
  },
})

const white: string[] = ["/login"];

router.beforeEach((to, from) => {
    const token = localStorage.getItem('token');
    // 判断是否在白名单路径中，如果在则直接返回，不做后续处理
    if (white.indexOf(to.fullPath)!== -1) {
        progress.done();
        return true;
    }else{
      // 如果有登录信息且当前路径不是主页，就跳转到登录
      if (token && to.fullPath!== "/home") {
          console.log(`已经有登录信息了，跳转到主页`);
          return true;
      } else if (!token) {
          console.log(`没有登录信息: ${to.fullPath}`);
          // 这里需要根据实际情况确定，如果没有登录信息应该跳转到登录页而不是主页，假设登录页路径是 "/login"
          if (to.fullPath!== "/login") {
              router.push("/login");
          }
          return true;
      }
    }

    progress.start();
    return true;
});

router.afterEach((to) => {
  const { title } = to.meta
  document.title = title ? `${title} - ${APP_NAME}` : APP_NAME

  progress.done();
})

export default router
